<?php
namespace   app\admin\model;


use think\facade\Cache;
use think\facade\Db;
use think\facade\View;
use think\Model;

class Gcategory extends Model{


    public static function getCateList($where)
    {
        $list = Db::name('gcategory')
            ->where($where)
            ->field(true)
            ->order('sort_order')
            ->select();

        return $list->toArray();
    }

    public static function getParentIdAll()
    {
        //【缓存】
        //同一个应用中，对同一数据、逻辑功能和用户界面的多次请求时经常使用。
        //当用户基数很大时，如果每次请求都进行处理，消耗的资源是很大的浪费，也同时造成系统的不稳定。
        //为解决这一问题，将数据等资源信息存入缓存中减少数据库调用，达到减轻数据库压力问题。

        if (Cache::has('parent_id_all')){
            $parentIdAll = Cache::get('parent_id_all');
        }else{
            $parentIdAll = Db::name('gcategory')->distinct(true)->column('parent_id');
            Cache::set('parent_id_all',$parentIdAll,10);
        }
        return $parentIdAll;
    }

    public static function getCateListArr()
    {
        $list = self::getCateList([]);
//        $arr = [];
//        foreach ($list as $v){
//            if ($v['parent_id'] == 0){
//                $arr[$v['cate_id']] = $v;
//                foreach ($list as $vv){
//                    if ($v['cate_id'] == $vv['parent_id']){
//                        $arr[$v['cate_id']]['next'][$vv['cate_id']] = $vv;
//                        foreach ($list as $vip){
//                            if ($vv['cate_id'] == $vip['parent_id']){
//                                $arr[$v['cate_id']]['next'][$vv['cate_id']]['next'][$vip['cate_id']] = $vip;
//                            }
//                        }
//                    }
//                }
//            }
//
//        }
        $arr = [];
        foreach ($list as $v){
            if ($v['parent_id'] == 0){
                //将一级分类 $v 赋值到 $arr[];
                $arr[$v['cate_id']] = $v;
                $arr[$v['cate_id']]['er'] = self::getNextCate($list,$v['cate_id']);
            }
        }
        return $arr;
    }


    public static function getNextCate($list,$parent_id)
    {
        $arr = [];
        foreach ($list as $vv){
            if ($parent_id == $vv['parent_id']){
                //将下一级分类 $vv 赋值到 $arr
                $arr[$vv['cate_id']] = $vv;
                $arr[$vv['cate_id']]['next'] = self::getNextCate($list,$vv['cate_id']);
            }
        }
        return $arr;
    }


//     public static  function AcateList($where){
//         $cate=Db::name('gcategory')->where($where)->select();
//         View::assign('cate',$cate);
//          return $cate->toArray();
//      }
//     public static  function AcateListNext(){
//         if (Cache::has('parent')){
//             $parent_all=Cache::get('parent');
//         }else{
//             $parent_all=Db::name('gcategory')->column('parent_id');
//                Cache::set('parent',$parent_all,10);
//         }
//            return $parent_all;
//        }
//
//
      public static function  cateList($where){
             $cate=Db::name('gcategory')->where($where)->select();
             return $cate->toArray();
          }
           public static function   cateListNext(){
                  $parent=Db::name('gcategory')->column('parent_id');
                  return $parent;
               }
//
//


}